import io from 'socket.io';

export const VERSION = "v1.0";//版本
export const CONNECT = "connect";//建立连接成功触发
export const REGISTER = "register";//注册
export const ERROR = "error";//异常时触发
export const DISCONNECT = "disconnect";//断开连接时触发
export const DIALOGUE = "dialogue"; //接收到对话时触发
export const CLOSELINK = "closelink";//关闭与api的连接
export const RECONNECT = "reconnect";//成功重连时触发
export const RECONNECT_ATTEMPT = "reconnect_attempt";//试图重连时触发
export const RECONNECTING = "reconnecting";//试图重连时触发
export const RECONNECT_ERROR = "reconnect_error";//试图重连时发生错误触发
export const RECONNECT_FAILED = "reconnect_failed";//无法重新连接时触发

const PING = "ping";//发出]ping包触发 
const PONG = "pong";//接收到服务端pong(响应ping)包触发

/**
 * 消息类型对应表
 */
export const MsgTypeVK = {
  1001: '$login',
  10181: '$enterGroupChat',
  10182: '$quitGroupChat',
  1003: '$createGroup',
  1020: '$getGroupList',
  1002: '$getGroupInfoByGroupId', // 4、根据群号搜索群信息
  1019: '$searchGroupByGroupId', // 8、根据groupId搜索群信息
  1006: '$getUserInfo',
  1007: '$addUserToGroup',
  1008: '$applyGroup',
  10091: '$getApplyList',
  10092: '$getQuitList',
  1010: '$handleAddApply', // 11、处理加群的申请（退群的申请不需要处理）
  1013: '$getMemberList', // 12、获取群成员列表（暂时未分页）
  1011: '$kickOut', // 14、用户主动退群
  1012: '$quitGroup', // 14、用户主动退群
  1014: '$setUserRole', // 设置用户角色
  1015: '$getTopFixedCard', // 获取置顶卡片
  1016: '$clickTopFixedCard',// 用户点击置顶卡片
  1004: '$updateGroupSetting',// 更新群设置
  1021: '$getSoundUrl',// 获取语音url
  1022: '$switchShutup',// 
  2002: '$getWxConfig',// 
  1023: '$getGroupQrcode',//  获取qrcode
  1024: '$getGroupHelper',//  获取群助手
  1025: '$searchGroupHelper',//  搜索群助手
  1026: '$addGroupHelper',//  添加群助手
  1017: '$addKeyword',//  添加群助手
  1027: '$selectKeyword',//  点击关键字
  1028: '$deleteHelper',//  删除助手
  2001: '$getBattleImage',//  战绩图
  2003: '$getShareCard',//  获取分享卡片
  1029: '$clickShareCard',//  点击分享卡片
  2004: '$shutUpOn',//  打开了禁言
  2005: '$shutUpOff',//  关闭了禁言
  2100: '$notifySended',//  推送的消息已发送
  1030: '$getUserQrcode',//  获取用户的qrcode
  1033: '$sendRedpacket',//  发送红包消息
  1034: '$openRedpacket',//  打开红包 
  1036: '$getPacketStatus',//   获取红包状态
  1035: '$getRedpacketDetail',//  红包详情 
  1031: '$setScoreMax',//   设置群积分的阈值
  1032: '$setMemberScore',//   设置成员积分
  1037: '$getImageList',//   獲取相冊圖片
  1038: '$deleteQrcodeImage',//   刪除相冊圖片
  2006: '$noMorePacket',//   
  1039: '$searchGroupMember',// 查询群成员
  2007: '$tokenExpired',//   群主转让群
  1041: '$getNotification',//   消息推送
};

/**
 * 与上表相反
 */
export const MsgTypeKV = {
  login: 1001,
  enterGroupChat: 10181, // 2、进入群聊页面
  quitGroupChat: 10182, // 3、退出群聊页面
  createGroup: 1003,  // 
  getGroupList: 1020,  // 获取群列表
  getGroupInfoByGroupId: 1002, // 4、根据群号搜索群信息
  searchGroupByGroupId: 1019, // 8、根据groupId搜索群信息
  getUserInfo: 1006, // 获取用户信息
  addUserToGroup: 1007,
  applyGroup: 1008,
  getApplyList: 10091,
  getQuitList: 10092,
  handleAddApply: 1010, // 11、处理加群的申请（退群的申请不需要处理）
  getMemberList: 1013, // 12、获取群成员列表（暂时未分页）
  kickOut: 1011, // 14、用户主动退群
  quitGroup: 1012, // 14、用户主动退群
  setUserRole: 1014, // 设置成员角色（在群成员列表设置管理员之类的）
  getTopFixedCard: 1015, // 获取置顶卡片
  clickTopFixedCard: 1016, // 用户点击置顶卡片
  updateGroupSetting: 1004, // 更新群设置
  getSoundUrl: 1021, // 获取语音url
  switchShutup: 1022, // 切换禁言
  getWxConfig: 2002, // 获取微信签名
  getGroupQrcode: 1023, // 获取微信签名
  getGroupHelper: 1024, // 获取群助手
  searchGroupHelper: 1025, // 搜索群助手
  addGroupHelper: 1026, // 添加群助手
  addKeyword: 1017, // 添加关键字
  selectKeyword: 1027, // 点击关键字
  deleteHelper: 1028, // 删除群助手
  getBattleImage: 2001, // 推送的战绩图片
  getShareCard: 2003, // 获取分享卡片
  clickShareCard: 1029, // 点击分享卡片
  shutUpOn: 2004, // 开启禁言
  shutUpOff: 2005, // 关闭禁言
  notifySended: 2100, // 推送的消息已发送
  getUserQrcode: 1030, // 推送的消息已发送
  setScoreMax: 1031, // 设置群积分的阈值
  setMemberScore: 1032, // 设置成员积分
  sendRedpacket: 1033, // 发送红包消息
  openRedpacket: 1034, // 打开红包
  getRedpacketDetail: 1035, // 红包详情
  getPacketStatus: 1036, // 红包状态
  getImageList: 1037, // 红包详情
  deleteQrcodeImage: 1038, // 删除二维码图片
  noMorePacket: 2006, // 红包抢光了
  searchGroupMember: 1039, // 搜索群成员
  assginOwner: 1040, // 指定群主
  tokenExpired: 2007, // token过期
  getNotification: 1041, // 获取通知列表
};

export class ImClient {
  public static Message(type: any, msgData?: any) {
    return {
      "type": type,
      "version": VERSION,
      "text": JSON.stringify(msgData),
      "time": + new Date().getTime()
    };
  }
}
